﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace ITAP.ContourBuilder.Manipulation
{
    public enum MouseMode
    {
        Down,
        Move,
        Up,
        Click,
        Wheel
    }

    public struct MouseState : IEquatable<MouseState> 
    {
        private MouseEventArgs mouseState;

        public MouseEventArgs State
        {
            get { return mouseState; }
            set { mouseState = value; }
        }

        private MouseMode mouseMode;

        public MouseMode MouseMode
        {
            get { return mouseMode; }
            set { mouseMode = value; }
        }

        public MouseState(MouseEventArgs mouseState, MouseMode mode)
        {
            this.mouseState = mouseState;
            this.mouseMode = mode;
        }

        #region IEquatable<MouseState> Members

        public bool Equals(MouseState other)
        {
            if (this.mouseState == other.mouseState && this.mouseMode == other.mouseMode)
                return true;
            else
                return false;                
        }

        #endregion
    }
}
